As of Dec. 5, 2005, Elephant has been tested with BerkeleyDB, SQLite3, and Postgres, and allows seamless migration of data between those repositories. For a while it did not work with Unicode enabled SBCL versions, but that has now been fixed.
This comparison by an Elephant developer contrasts it with today's early versions of Rucksack.
Things to keep in mind
If you want to modify the value in a slot which doesn't hold a persistent object, just set the whole slot. Because otherwise the updated slot won't be stored in the DB. Here's an example:
;; Wrong -- the DB won't update (setf (first (slot1 my-persistent-object)) 'foo) ;; Ok (setf (slot1 my-persistent-object) (cons 'foo (rest (slot1 my-persistent-object))))