Is there a way of completely replacing the SQL of a View with my own custom string?
Don't do that. You've got two options: either use Views or don't.

Option 1: Use a custom block/page handler

You can build your own query and theme it any way you want it. Just build it as a block or a custom page and do it the "old-fashioned" way. It will be much cleaner than trying to use views.

Option 2: Use Views

If you want views, then you should build any additional plugins, handlers, or add any alters you need and do it right (that includes using the DB abstraction layer). This isn't hard and there is plenty of documentation floating around that can help you with this.

If you circumvent the systems you have (e.g. Views), you will end up producing code that isn't maintainable by someone else or could unknowingly introduce problems. Please don't look for shortcuts, do it well and do it right.