1. A system, comprising: a processor configured to: receive an indication to synchronize a current data state of a first container to match a data state that is represented by a snapshot of a second container without duplicating at least a subset of physical data associated with the snapshot of the second container; wherein the snapshot comprises a data structure that stores a plurality of mappings of logical locations to physical locations at which snapshot data is stored at a physical storage device; wherein the first container has a first container type, wherein the first container type is one or more of the following: a virtual machine, a virtual disk associated with the virtual machine, and a file associated with the virtual machine; wherein the first container has identity information that is determined based at least in part on the first container type; wherein the identity information associated with the first container comprises a first value prior to a synchronization of the current data state of the first container to match the data state that is represented by the snapshot of the second container; perform the synchronization of the current data state of the first container to match the data state that is represented by the snapshot of the second container, including to: provide a new current data structure associated with the first container, wherein the new current data structure is initially empty of any mappings of logical locations to physical locations, wherein the new current data structure is configured to store one or more mappings of logical locations to physical locations of data that represents the current data state of the first container; store a pointer from the new current data structure associated with the first container to the snapshot of the second container; determine that the identity information of the first container has been at least partially overwritten by identity information associated with the second container associated with the snapshot; and restore the identity information of the first container to the first value that is associated with the identity information of the first container prior to the synchronization of the current data state of the first container to match the data state that is represented by the snapshot of the second container; and subsequent to the synchronization of the current data state of the first container to match the data state that is represented by the snapshot of the second container: receive a read request for a requested mapping of a logical location to a physical location from the first container; in response to the read request, search the new current data structure associated with the first container for the requested mapping; and in the event that the requested mapping is not found in the new current data structure associated with the first container: use the pointer from the new current data structure associated with the first container to the snapshot of the second container to access the snapshot of the second container; and search for the requested mapping at the snapshot of the second container; and a memory coupled to the processor and configured to store the snapshot of the second container.