private ObjectState GetByIdInternal(ObjectId objectId)
        {
            ObjectState ownObject;

            if (materializedObjectStates.TryGetValue(objectId, out ownObject))
            {
                return(ownObject);
            }
            var parentObjectState = parentSnapshot.GetById(objectId);

            if (parentObjectState != null)
            {
                parentObjectState = parentObjectState.Clone();
            }
            return(parentObjectState);
        }