Constraints to be taken into account:
- preferred machine role
- find combinations of arbitrary database versions, right now database version is a string, not a specific version
- allow surrogate database versions
- deal with mirrored and sliced data sets
- allow picking a specific server by connection string with flexible matching rules