Should probably have some test coverage for the case where the query is empty.
Instead of using return I'd wrap this case in the if, and the rest of the method in its matching else.

For conditionals using predicates like this it's a common idiom to not wrap with parens.

Also, in ruby the last interpreted value in a method is what will get returned:

```ruby
if query.empty?
  []
else
  # ...
  find_by_sql sql_params
end
```

The return is implied here - whatever is last gets returned.