Sachverhalt: A. Der spanische Staatsangehörige A._ (geb. 1958) reiste im August 1971 im Rahmen des Familiennachzugs zu seinen Eltern in die Schweiz ein. Am 11. Mai 1981 wurde ihm die Aufenthaltsbewilligung erteilt und seit dem 16. Februar 1995 ist er im Besitz der Niederlassungsbewilligung. Am 25. Juli 1993 ist aus der Beziehung mit einer Schweizer Bürgerin sein Sohn B._ zur Welt gekommen. A._ bezieht eine IV-Rente und arbeitet in der Eingliederungsstätte C._. Während seines Aufenthalts in der Schweiz wurde A._ wiederholt straffällig. In der Zeitspanne von 1985 bis 2012 wurde er zu Freiheitsstrafen von insgesamt fünf Jahren und drei Monaten verurteilt, wobei diese Verurteilungen, mit Ausnahme der letzten, im Strafregister inzwischen gelöscht sind. Die letzte und zugleich schwerste Verurteilung datiert vom 22. August 2012: Das Obergericht des Kantons Solothurn verurteilte A._ zu einer unbedingten Freiheitsstrafe von 20 Monaten wegen sexuellen Handlungen mit einem Kind und ordnete eine ambulante psychotherapeutische Behandlung an, wobei der Vollzug der Freiheitsstrafe für die Dauer der ambulanten Massnahme aufgeschoben wurde. B. Nach Gewährung des rechtlichen Gehörs verfügte die kantonale Migrationsbehörde mit Verfügung vom 6. November 2013 den Widerruf der Niederlassungsbewilligung von A._ und wies diesen aus der Schweiz weg. Die gegen diese Verfügung erhobene Beschwerde wies das Verwaltungsgericht des Kantons Solothurn mit Urteil vom 6. Mai 2014 ab. C. Mit Eingabe vom 11. Juni 2014 erhebt A._ Beschwerde in öffentlich-rechtlichen Angelegenheiten an das Bundesgericht. Er beantragt, das angefochtene Urteil des Verwaltungsgerichts des Kantons Solothurn vom 6. Mai 2014 sei aufzuheben und dem Beschwerdeführer sei die Aufenthaltsbewilligung EU/EFTA zu erteilen; eventualiter sei die Sache zur neuen Beurteilung an die Vorinstanz zurückzuweisen. Weiter beantragt er die unentgeltliche Rechtspflege und Verbeiständung. D. Mit Verfügung vom 13. Juni 2014 hat der Präsident der II. öffentlich-rechtlichen Abteilung des Bundesgerichts der Beschwerde antragsgemäss die aufschiebende Wirkung zuerkannt. Das Verwaltungsgericht und das Migrationsamt des Kantons Solothurn beantragen die Abweisung der Beschwerde, soweit darauf einzutreten sei. Das Bundesamt für Migration schliesst auf Abweisung der Beschwerde. 