Il codice che dovrebbe essere eseguito per ogni nuova istanza appartiene logicamente al costruttore della classe. Ti suggerisco di spostare il codice di recupero dei dati nel costruttore, invece di fare confusione con le soluzioni più complesse per scaricare e ricaricare la classe stessa al fine di eseguire il codice statico.
Se non pensi che l'accesso al DB debba avvenire all'interno del costruttore (un punto di vista valido in alcune circostanze), potresti prendere in considerazione un modello factory per creare istanze di questa classe, o fare in modo che il costruttore prenda un'istanza di qualcosa che implementa un qualche tipo di interfaccia DataPopulator
in modo tale che tu stia almeno a separare il codice DB da qualunque sia effettivamente questa classe.