Puppet will not read manifests or catalogs from a database, but it does have mechanisms for plugging in dynamic components that drive configuration.
The "external node classifier" has already been mentioned -- this is a program that you can provide, and which Puppet will consult for lists of global variable values, classes to apply, and, optionally, class parameter values. This data can be used either instead of or in addition to node blocks.
Additionally, Puppet's data binding subsystem, Hiera, supports custom back-ends, and it would be possible to write one that works as a wrapper for your application. If you already have config data in a database, though, it might be more convenient to write a back-end that connects directly to the database.
Hiera can serve in almost all the same capacities that an ENC supports, and in some capacities that an ENC does not directly support. The two have different strengths, however, and they are not mutually exclusive.
John