protected function read_upgrade_config_file() {
		
		$config = parse_ini_file($this->upgradeConfigFile,true, INI_SCANNER_RAW);
		
		if(is_array($config)) {
			$myConfig = $config;
			if(isset($config['main'])) {
				if(isset($config['main']['initial_version'])) {
					$this->initialVersion = $config['main']['initial_version'];
				}
				unset($myConfig['main'], $myConfig['defaults']);
			}
			
			$lastVersion = null;
			foreach ($myConfig as $v => $d) {
				$myVersion = preg_replace('/^v/', '', $v);
				if (is_null($lastVersion)) {
					$lastVersion = $myVersion;
				} else {
					if (!$this->is_higher_version($lastVersion, $myVersion)) {
						throw new LogicException(__METHOD__ . ": version must be in order of lowest to highest");
					}
				}
				
				//certain indexes MUST be set.
				if(!isset($d['target_version'])) {
					throw new ErrorException(__METHOD__ .": missing target version for '". $myVersion ."'");
				}
				
				$this->matchingData[$myVersion] = $d;
			}
		} else {
			$this->initialVersion = $this->versionFileVersion;
		}
		
		return $this->matchingData;
	}