text: Title: Add support for lazy connections
  Body: ## Problem
  
  <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
  
  Currently, defining multiple event handlers using a framework that doesn't support a callback like `on_startup()` is annoying as you have to check if the client is connected or not before making a query.
  
  ## Suggested solution
  
  <!-- A clear and concise description of what you want to happen. -->
  
  Refactor the internal engine connection to be lazy, i.e. whenever a query is made, connect to the database before running the query.