Ahh, it's far more uncommon for me to feel like a database is over engineered. It's much more common to find a codebase has 7 levels of indirection but the database fails to accurately and completely represent their business domain.
When I do feel a database is over engineered it is almost exclusively adding complexities to the database to handle a contrived or rare examples. With the most common being "splitting one table into 2 because a one to one relationship is actually a one to many once every 5 years", or "adding a join table because in Joe's 30 year career there was that one time multiple companies jointly sold us a single product"