It depends.
It depends on what you are calling business logic.
Certain things need to be enforce in the database - particularly anything where some other process is going to have assumptions about the nature of what the database presents.
If all users of the database assume that when the last offspring of a billing party is deactivated, the billing party status needs to be altered, then this needs to be enforced in the DB - either in a SP which is the only way to perform the operation or a trigger, or a constraint or something. This is the kind of thing - low-level business logic which is really critical data integrity logic at the business level - which is OK to have in the database.
High-level business logic does not fit in the database - for instance when a patient cancels their last appointment and need to go on a recall list - that is not a data integrity issue - all callers of the system do not assume that patients without appointments must be on the recall list.
The distinction is subtle and it's why people have difficulties with "business" logic in the database. I recommend only things which it is assumed that the database protects and presents at the database perimeter to all users of the database be implemented in the database - this business logic is below the DAL layer and is part of the fundamental database design. I still advocate in traditional architectures a business-blind DAL above that and a real BLL above that.
Having said that, it is certainly possible when the DAL is really trivial SP pumping to have your higher level business logic in the database as well, and when you do, it is not as clear which things are low-level and which are high-level (unless you have two databases, one built on top of the other - which is not necessarily a terrible idea). You've effectively written a part of your business logic in SQL instead of a traditional client app.
That doesn't necessarily mean your layers are too tightly coupled or you've got a bad architecture - just like any system, the language choice for different layers doesn't necessarily point to an architectural issue. Only by looking at the layers can you tell if you have an architectural issue.