This article presents an approach to Autonomy Requirements Engineering (ARE) that targets the integration and promotion of autonomy in software-intensive systems by providing a mechanism and methodology for elicitation and expression of autonomy requirements. ARE relies on goal-oriented requirements engineering to elicit and define system goals, and uses the generic autonomy requirements model to derive and define assistive and, eventually, alternative objectives. The system may pursue these "self-* objectives" in the presence of factors threatening the achievement of the initial system goals. Once identified, the autonomy requirements are specified with KnowLang, a formal language dedicated to knowledge representation and reasoning. To demonstrate both the ARE's and KnowLang's ability to handle autonomy requirements for self-adaptive systems, the approach is applied to Science Clouds, a self-adaptive cloud platform.