A selection clause that uses ? as a replaceable parameter and an array of selection arguments array are preferred way to specify a selection, even if the provider isn't based on an SQL database.
I have quoted this sentence from this developer guide about how to avoid SQL-injection in queries used for retrieving data from a Content Provider in this developer guide.

The question is why is it a preferred way with non-SQL databases as well?

Although I am not familiar with any other database systems, but I have heard names like MongoDB, Oracle etc. So I am not sure if this is the right question to ask, but I was intrigued. So if this question is not OK, it can be ignored.