A KeyError exception is raised if there is not a record for the given oid and version.
If a storage does not support versions, it should raise a KeyError if a non-blank version is given, however, it must accept and check the version argument.
PostConditions
If session_id is false: The committed data for the object is returned else: If there is session data for the given object and session: the session data is returned. else: the committed data is returned.