Ок, я перечитал статью по паттерну стратегия. Этот паттерн можно просто описать одним словом - полиморфизм. И этот подход не решает мою проблему. У меня должны быть разные прототипы функции.
Мне нужно, что б одна реализация возвращала DataTable, а другая просто string.