What does "business logic" mean to you? According to the Wikipedia definition [1], I find it very difficult to imagine SQL that does not contain business logic.
[1] "business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, displayed, stored, and changed.", https://en.wikipedia.org/wiki/Business_logic
Business Logic is calculating tax, working out price, adding something to a bag, populating an order object with infomation according to some rules.
Business logic isn't pulling data from database, how to map an object to a table, or the specific SQL query to grab some data. Those are technical details. SQL should just be pulling, saving and querying from the store without much maniplation. Not changing the data.
It's the rules that a business stakeholder might be interested in creating.
When you start putting the tax calculation rules into the stored proc, thats where the problems begin.
If you create a CTE to pull the information required to perform the calulation then return that info without doing the calculation thats fine.
Let's assume there is a business requirement that an order belongs to a customer. By definition, this is business logic. If you implement this requirement by creating a foreign key constraint, then you have added business logic to the database. If there is a business requirement to calculate the sum of all wages in a department, and you do this via an aggregation in SQL, then you have processed business logic in the database.
If you are not allowed to do this kind of things, then what is left? Do you interact with your database as if it were just a bunch of VSAM files?
Tbh a lot of NoSQL databases don't use foreign key constraints. If you have a SQL system with messaging and eventual consistency you have to turn them off anyway.
So in a lot of ways, yes people use databases like they're just persistent memory with indexes.
They're great for storing complicated queries, but the actual buiness logic? No.
Have some stored procs for updating and querying data, then a lightweight abstraction around them in the application.