Software as a Service (SaaS) has been increasingly adopted by software vendors as their main software delivery model, as it provides the opportunity to offer their software applications to a larger market and to benefit from the economies of scale. If well-achieved by the SaaS provider, these benefits add value to the offering and reduce the operational costs of hosting and maintaining the SaaS application. As explained in our previous article of this series, one of the key enablers to leverage economies of scale is multi-tenancy: resources are shared among multiple customer organizations (the so-called tenants), which leads to higher resource utilization and scalability. The highest degree of resource sharing is achieved with application-level multi-tenancy: end users from different tenants are simultaneously served by a single application instance on top of shared hardware and software infrastructure. This is the second white paper in a series of blog articles on application-level multitenancy. In this white paper we focus on the challenge of customizing multi-tenant SaaS applications based on the specific requirements of the different co-existing tenants, without compromising the key benefits of cloud computing, such as cost efficiency and scalability. To address this challenge, we present our approach, which is twofold and maps to two core contributions: (i) a middleware framework to support co-existing variants in multi-tenant SaaS applications, and (ii) a software engineering method, called service line engineering (SLE), to introduce and manage variability throughout the entire lifecycle of multi-tenant SaaS applications.