Fetching the website version number from the database
The try-catch-throw with no error handling is completely pointless. I would just remove it and let the exception bubble up the call stack.
There is no need to call connection.Dispose() since the using () { ... } block will do that automatically
A StringBuilder object is like hitting a thumbtack with a sledge hammer in this case. You can prefix a string literal with the @ symbol to allow newline characters for better readibility:

string sql = @"SELECT TOP 1
               [WebsiteVersion]
               FROM [WebsiteDefaults]";


Or since this is such a simple SQL statement, a one-liner is appropriate as well:

string sql = "SELECT TOP 1 [WebsiteVersion] FROM [WebsiteDefaults]";