The project adapts and extends an existing block-by-block main-memory garbage collection scheme, called Mature Object Space, for use in collecting persistent object stores. The scheme will locate and reclaim database memory containing no longer accessible data. This will relieve programmers of the burdensome and error-prone task of indicating which memory can be reused, thus allowing better programming styles. The algorithm is the first to work block by block (important for integrating nicely with databases) and to guarantee to find all inaccessible memory. It can also help reorganize (recluster) data and thus improve store performance. The algorithm is incremental, with a coarse granularity (collecting one block at a time). A significant contribution of the research is the algorithm itself. Perhaps more significant will be the implementation and measurement of the algorithm, and investigation of how to incorporate reclustering. The resulting storage management techniques will be suitable for incorporation into practical database management systems, guaranteeing that storage is not `lost` but eventually `found` and `recycled` for further use. The techniques will be substantially independent of storage management policy, allowing policy to be chosen by database implementors and application builders to best suit their needs.