I'm pretty sure that the problem is caused by that scarcity of OODBMS (Object-Orioented Database Management Systems), and their wildly different implementations.
I've worked with two OODBMS systems that later evolved to become general purpose "code wrappers" that support many different database products. These are far more common than true OODBMS packages, and some have acheived some commercial success.
Eiffel is one example of a language wrapper that is pretty portable between both Operating Systems and database engines. Eiffel isn't truly a database product, it is a language that produces code which runs against a database product. The actual code is truly OO (Object Oriented) and the resulting applications are pretty fast and portable.
The short answer in my experience: RDBMS (Relational Database Management Systems) are pretty common, but ORDDBMS (Object Relational Database Management Systems) don't exist yet.
In theory, theory and practice are identical. In practice, theory and practice are unrelated.