1. A method for retrieving versioned data in a non-volatile memory, the method comprising: receiving a read request for a data object; and in response to the request: determining, via an object table, whether two or more versions of the data object exist in memory; in accordance with a determination that two or more versions exist in memory, obtaining, via the object table, a respective location where a particular version of the two or more versions of the data object is stored; and reading at least the particular version of the two or more versions of the data object from the respective location into volatile memory; wherein the object table comprises multiple records and each record includes a reference to an object list, a version number distinct from the reference to the object list, and an object index.