1. A method comprising: creating, by one or more computing devices, a snapshot object, the snapshot object representing a logical view of a plurality of application objects stored in a memory at a particular time, the plurality of application objects including a first application object, and the first application object being associated with state information including information identifying a version of the first application object and information identifying a range of snapshot objects that apply to the first application object; receiving, by the one or more computing devices, a first request to store a first modified version of the first application object in the memory; determining, by the one or more computing devices, whether a second modified version of the first application object has been stored in the memory after the snapshot object was created based on the state information associated with the first application object; selectively storing, by the one or more computing devices and in the memory, one of the first modified version of the first application object or a new application object based on whether the second modified version of the first application object has been stored in the memory after the snapshot object was created, the new application object being stored in the memory when the second modified version of the first application object has not been stored in the memory after the snapshot object was created, storing the new application object causing the memory to include the first application object and the new application object, and the new application object including: the first modified version of the first application object, and modified state information indicating that the first modified version of the first application object has been stored in the memory after the snapshot object was created, and the first modified version of the first application object being stored in the memory when the second modified version of the first application object has been stored in the memory after the snapshot object was created, storing the first modified version of the first application object replacing the second modified version of the first application object with the first modified version of the first application object in the memory; receiving, by the one or more computing devices, a query to return a group of application objects that are included in a specified snapshot; appending, by the one or more computing devices, search terms to the query to form a modified query; and retrieving, by the one or more computing devices and based on searching the state information of the plurality of application objects using the modified query, only application objects, of the plurality of application objects, included in the specified snapshot.