1. A solid state storage device for maintaining versions of data, the solid state storage device comprising: a processor; a solid state memory communicatively coupled to the processor; and a flash translation layer communicatively coupled to the processor and the solid state memory, wherein the flash translation layer is configured to perform a method comprising: receiving at least one read request from a file system to perform a read operation, the read operation configured to read at least one dataset from at least one physical page associated with a logical page of a solid state memory, the at least one read request identifying the logical page; identifying at least one physical page associated with the logical page; retrieving a dataset from the physical page; retrieving a data versioning tag associated with the dataset from a tag area within the flash translation layer, the data versioning tag comprising at least a version identifier identifying the dataset as a given version of a dataset associated with the at least one logical page, and a file/directory identifier identifying one of a file and a directory within the file system corresponding to the physical page from which the dataset was retrieved, where physical pages corresponding to one of a given file and a given directory are associated with a same file/directory identifier; and sending the dataset and the data versioning tag to the file system.