What you described sounds very similar to what we implemented at another place of employment. What we did was something much like this (this is Pseudo code so you'll have to modify it somewhat for whatever language/environment you're using):
procedure RunAllTests(CSVFileName); //CSVFileName would be the fully qualified path and filename to a CSV file w/ column names in the first row
begin
RestoreDatabase;
RunAUT;
DDT.CSVDriver(CSVFileName);
while not DDT.CurrentDriver.EOF do begin
case DDT.CurrentDriver.Value["TestType"] of
"NavigateMenu" : NavigateMenuTest;
"CheckSettings" : SettingsTest;
end;
DDT.CurrentDriver.Next;
end;
DDT.CloseDriver(DDT.CurrentDriver.Name);
CleanUpEnvironment;
end;
Each one of the cases would call a test method that would utilize DDT.CurrentDriver within the method so that values within the driver record could be used to determine what parameters to use within the test.
Don't know if this gives you some ideas, but this is the way I'd do it.