Most of this has already been discussed, but I'm of the camp that BL only goes inside the database if it's the only way to hit your performance targets. I suppose if there's a non-SQL interface that's superior in some fashion for your BL, then that might also be a valid reason to go inside the database.
Reasons to *not* go inside the database are worth making to your boss. For starters, injecting any code creates the opportunity for things to go wrong in spectacular fashion. For example, your database may or may not need to be restarted if your injected code goes into an infinite loop or otherwise freaks out. When you keep things separate, it's much easier to upgrade (or reboot) one component or the other. Of course, you can use caching to soften the hit of talking to the database, but that gets more complicated if you want to distribute your BL across multiple servers. Still, it's easier to distribute BL than to distribute a database.