1. A method for storing snapshots of client data objects in a storage system, the method comprising: storing, by a computer, a plurality of logical pointer objects, each having a first address field; organizing, by the computer, a first set of the logical pointer objects into a hierarchical structure using the first address fields of the logical pointer objects in the first set to point to other logical pointer objects in the first set; associating, by the computer, a second set of the logical pointer objects with corresponding logical data blocks that comprise a client data object, including using the first address fields of the logical pointer objects in the second set to point to physical data blocks having deduplicated data that comprise data of the corresponding logical data blocks; using, by the computer, the first address field of some of the logical pointer objects in the first set to point to logical pointer objects in the second set; associating, by the computer, a root of the hierarchical structure with the client data object; and creating, by the computer, a snapshot of the client data object including making a copy of the root and associating the copied root with the snapshot.